package regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则表达式元字符-定位符
 */
public class RegExp06 {

    public static void main(String[] args) {

        /*
            符号          含义                      示例                  说明                                                  匹配输入
            ^         指定起始字符            ^[0-9]+[a-z]*        以至少1个数字开头，后接任意个小写字母的字符串                      123、6aa、555edf
            $         指定结束字符            ^[0-9]+[a-z]+$       以1个数字开头后接连字符-，并以至少1个小写字母结尾的字符串           1-a
            \\b       匹配目标字符串的边界     han\\b               这里说的字符串边界指的是字串间有空格，或者是目标字符串的结束位置      hanshunping、sphan、nnhan
            \\B       匹配目标字符串的非边界   han\\B                和\b含义相反                                                 hanshunping、sphan、nnhan
         */
        String content = "hanshunping sphan nnhan";

        //以至少1个数字开头，后接任意个小写字母的字符串
//        String regStr = "^[0-9]+[a-z]*";

        //以至少1个数字开头, 必须以至少一个小写字母结束
//        String regStr = "^[0-9]+\\-[a-z]+$";

        //表示匹配边界的han[这里的边界是指：被匹配的字符串最后,也可以是空格的子字符串的后面]
//        String regStr = "han\\b";

        //和\\b 的含义刚刚相反
        String regStr = "han\\B";

        Pattern pattern = Pattern.compile(regStr);
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            System.out.println("找到=" + matcher.group(0));
        }

    }
}
